package com.example.controller;

import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class IndexController {

    /**
     * 跳转登录页请求，不需要认证
     * @return
     */
    @GetMapping("/login")
    public String login(){
        return "login";
    }

    /**
     * 跳转到index.html的请求，此处默认也不需要认证
     * @return
     */
    @RequestMapping("/index")
    public String index(){
        return "index";
    }

    /**
     * 跳转到普通电影的请求，需要用户认证，User或Admin都可以访问
     * @return
     */
    @GetMapping("/normal")
    @ResponseBody
    public String normal(){
        return "normal_电影";
    }
    /**
     * 跳转到vip电影的请求，需要用户认证，通过用户具有admin权限
     * @return
     */
    @GetMapping("/vip")
    @ResponseBody
    public String vip(){
        return "vip_电影";
    }

    /**
     * @PreAuthorize(value = "hasRole('ADMIN')")
     * 前置拦截器,在用户请求到达访问资源前进行拦截，根据配置的权限表达式进行相关的权限认证
     */
    @GetMapping("/pay")
    @ResponseBody
    @PreAuthorize(value = "hasRole('ADMIN')")
    public String pay(){
        return "pay_电影";
    }


}
